import axios from 'axios';
import { showToast } from 'vant';
import router from '../router/index'

//先设置根地址 方便项目部署
axios.defaults.baseURL = 'http://47.121.133.107:3000'

//响应头 post
axios.defaults.headers.post['Content-Type'] = 'application/json'

//前端 -- axios -- 后端
//请求拦截 前端发送请求前 写一个token
axios.interceptors.request.use(req => {
    //拦截的请求体
    const jwtToken = localStorage.getItem('token');
    
    if(jwtToken){
        req.headers.Authorization = jwtToken;
    } 
    //放行
    return req;
})

//响应拦截 后端返回响应后
//res 作为拦截到的响应体
axios.interceptors.response.use(
    (res) => {
    //接口不通 程序错误 前后端出错都有可能
    if(res.status !== 200){
        //vant轻提示
        showToast('服务器异常');
        //axios.catch
        return Promise.reject(res);
    }else{
        //可能的数据类型不匹配导致返回空值
        if(res.data.code !== '800'){
            //逻辑性错误
            showToast(res.data.msg);
            return Promise.reject(res);
        }else{
            return res.data;
        }
    }
    }
)

//
export default axios;